cssnode: Redo first/last-child change tracking
authorBenjamin Otte <otte@redhat.com>
Wed, 16 Dec 2015 18:48:30 +0000 (19:48 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 16 Dec 2015 18:55:50 +0000 (19:55 +0100)
commit2e362eafc7a22e007fddb4ee9c76dfffdbbf02b7
treeff56729e797cc340e4c4471f573591d24389765c
parent36653bea4189221c1b3d391890793f50fde3c758
cssnode: Redo first/last-child change tracking

Invisible nodes don't change the first/last-child status of the nodes
after/before them. That means we don't have to just check the state of
the adjacent node when modifying this state, but all their siblings
until we hit a visible node.

The same way, a node is not the first child if it has no previous
sibling, it is the first child if it has no previous visible sibling.
This is important for caching in the global lookup cache.
gtk/gtkcssnode.c